/*
 * Camera.h
 *
 *  Created on: 2018年3月19日
 *      Author: zhengboyuan
 */

#ifndef CAMERA_H_
#define CAMERA_H_

#include <string>
#include <vector>
#include <DShow.h>

class Camera
{
public:
	class Device
	{
	public:
		int	index;
		std::string name;

		Device():
			index(),
			name()
		{
		}
	};

	typedef std::vector< Device >	DeviceList;

	typedef std::wstring					WString;
	typedef std::vector< std::wstring >		WStringArray;

public:
	static int listDevice(DeviceList& deviceList);

	static HRESULT getFriendlyName(IMoniker* pMoniker, VARIANT& var);
	static HRESULT getFriendlyName(IMoniker* pMoniker, WString& wstr);

	static HRESULT enumSystemDevice(REFCLSID clsidDeviceClass, WStringArray& array );

public:
	Camera();
	virtual ~Camera();


};

#endif /* CAMERA_H_ */
